﻿Public Class frm_bancos

    Dim check As New Validar
    Dim deshabilitarGuardar As Boolean = False
    Dim accesoDatos As New AccesoDatos("Banco")

    Enum actualizar
        modificar
        ingresar
    End Enum

    Dim accion As actualizar

    Private Sub cargarGrilla(ByVal tablaACargar As Data.DataTable)
        dgv_banco.DataSource = tablaACargar
    End Sub

    Private Sub frm_bancos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarGrilla(accesoDatos.leerBanco())

        txt_idBanco.Enabled = False
        txt_nombreBanco.Enabled = False

        cmd_nuevo.Focus()
    End Sub

    Private Function validarBlancos() As Boolean
        Dim resultado As Boolean = True
        If check.validarBlanco(txt_nombreBanco.Text) = True Then
            MessageBox.Show("Ingrese el nombre del banco.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            txt_nombreBanco.Focus()
            resultado = False
        End If
        Return resultado
    End Function

    Private Function generarStringValores() As String
        Dim valores As String = "nombre =" & txt_nombreBanco.Text
        Return valores
    End Function

    Private Function generarRestriccionUpdate(ByVal campo As String, ByRef valor As TextBox) As String
        Dim restriccion As String
        restriccion = campo & " = " & valor.Text
        Return restriccion
    End Function

    Private Sub cmd_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_guardar.Click
        If validarBlancos() = True Then
            If MessageBox.Show("¿Está seguro que desea guardar los cambios?", "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
                If accion = actualizar.ingresar Then
                    accesoDatos.insertar(True, generarStringValores())
                    MessageBox.Show("Banco guardado con exito", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else
                    accesoDatos.Modificar(True, generarStringValores(), generarRestriccionUpdate("idBanco", txt_idBanco))
                    MessageBox.Show("Banco guardada con exito.", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
                cargarGrilla(accesoDatos.leerBanco())
            Else
                Exit Sub
            End If
        End If
        frm_proveedor.cargarComboParaVolverDeFormBancos()
    End Sub

    Private Sub cmd_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_salir.Click
        Me.Close()
    End Sub

    Private Sub cmd_cancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_cancelar.Click
        txt_idBanco.Text = ""
        txt_nombreBanco.Text = ""

        txt_nombreBanco.Focus()
        cargarGrilla(accesoDatos.leerBanco())
    End Sub

    Private Sub dgv_banco_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgv_banco.DoubleClick
        txt_nombreBanco.Enabled = True
        accion = actualizar.modificar
        Dim id As String = dgv_banco.CurrentRow.Cells(0).Value
        Dim tabla As Data.DataTable = accesoDatos.consulta("select * from Banco where idBanco = " & id)

        txt_nombreBanco.Text = tabla.Rows(0)("nombre")
        txt_idBanco.Text = tabla.Rows(0)("idBanco")

        txt_nombreBanco.Enabled = True

    End Sub

    Private Sub cmd_nuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_nuevo.Click
        cargarGrilla(accesoDatos.leerBanco())

        txt_nombreBanco.Enabled = True

        txt_idBanco.Text = ""
        txt_nombreBanco.Text = ""


        txt_nombreBanco.Focus()
        accion = actualizar.ingresar
    End Sub

    Private Sub cmd_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_eliminar.Click
        If txt_idBanco.Text = "" Then
            MessageBox.Show("Debe hacer doble click en el banco que desea eliminar", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            If MessageBox.Show("¿Está seguro que desea eliminar?", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then
                accesoDatos.eliminar("idBanco", txt_idBanco.Text)
                MessageBox.Show("¡Se elimino con exito!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                cargarGrilla(accesoDatos.leerBanco())
                txt_idBanco.Text = ""
                txt_nombreBanco.Text = ""
            End If
        End If

    End Sub

End Class